Storage medium having game program stored thereon and game apparatus

ABSTRACT

The game apparatus shoots a moving object from a predetermined weapon object and moves the moving object in a three-dimensional space in a case where an input from an input device is received. At least one of the size, the shape, and the number of a contact determination area defined for the moving object is changed in accordance with a distance over which the moving object moves in the three-dimensional space. The game apparatus determines whether or not the contact determination area defined for the moving object contacts a contact determination area defined for a target object. A predetermined game process is performed when the determination result of a contact determination step is positive.

CROSS REFERENCE TO RELATED APPLICATION

The disclosure of Japanese Patent Application No. 2007-180292, filed onJul. 9, 2007, is incorporated herein by reference.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates to a storage medium having a game programstored thereon and a game apparatus, and more particularly to a storagemedium having stored thereon a game program and a game apparatus whichexecute a game in which an object representing a target is shot in avirtual three-dimensional space.

2. Description of the Background Art

Conventionally, well-known is a game apparatus which executes a game inwhich a target object representing a target is shot in a virtualthree-dimensional space. The game apparatus has a contact determinationarea defined for each of the target object, and a bullet object shotfrom a gun and the like, so as to determine whether or not a bullet hitsa target. Specifically, whether or not the bullet has hit the target isdetermined depending on whether or not the target object contacts thebullet object. In general, the size and the shape of the contactdetermination area of each of the target object and the bullet object donot change in accordance with a game state. Accordingly, while thetarget object is moved, the contact determination area of the targetobject is also moved in accordance with the target object, and thereforeit is difficult that a bullet hits a moving target, and it is likely tobe too difficult for a player to play the game.

Patent Document 1 (Japanese Laid-Open Patent Publication No.2005-246071) discloses a method for reducing the difficulty with which abullet hits a moving target. The image generation system disclosed inPatent Document 1 determines whether or not a target object is moving,and when the target object is determined to be moving, the contactdetermination area of the target object is increased. Thus, the contactdetermination area of the bullet object more readily contacts thecontact determination area of the target object, and therefore thebullet can more easily hit the moving target, thereby reducing thedifficulty.

However, the image generation system disclosed in Patent Document 1needs to determine whether or not all the target objects appearing inthe three-dimensional space is moving so as to define, based on thedetermination result, the contact determination area. Accordingly, theimage generation system has a problem that a processing load of thesystem changes depending on the number of the target objects appearingin the three-dimensional space, and the increased number of the targetobjects leads to an increase in processing load of the system.

SUMMARY OF THE INVENTION

Therefore, an object of the present invention is to provide a gameprogram and a game apparatus capable of preventing a processing load ofa system from being changed depending on the number of target objects,and executing a game process with a constant load.

The present invention has the following features to attain the objectmentioned above. The reference numerals, supplementary descriptions andthe like in the parentheses in the following description indicate thecorrespondence with the embodiment described below in order to aid inunderstanding the present invention and are not intended to limit, inany way, the scope of the present invention.

A first aspect of the present invention is directed to acomputer-readable storage medium (optical disc 4) having stored thereona game program (60) executed by a computer (the CPU 10 or the like) of agame apparatus (3) for executing a game in which a target object (51,52, 53, 54) is shot in a virtual three-dimensional space (game space) inaccordance with an input from an input device (controller 5). The gameprogram causes the computer to execute: an input reception step (S2); ashooting step (S12, S14); an area change step (S17, S18); an areadetermination step (S7); and a contact process step (S8). In the inputreception step, the computer receives an input of an instruction forshooting. In the shooting step, the computer shoots a moving object(arrow object 55) and moves the moving object in the virtualthree-dimensional space in a case where the input reception stepreceives the input. In the area change step, the computer changes atleast one of a size, a shape, and a number of a contact determinationarea defined for the moving object, by using a variable changing inaccordance with the moving object being moved. In the contactdetermination step, the computer determines whether or not the contactdetermination area defined for the moving object contacts a contactdetermination area defined for the target object. In the contact processstep, the computer performs a predetermined game process (contactprocess) when the contact determination step determines that the contactdetermination area defined for the moving object contacts the contactdetermination area defined for the target object.

In a second aspect, the variable may represent an elapsed time after themoving object is shot.

In a third aspect, the computer may change the contact determinationarea defined for the moving object, in the area change step, such thatthe longer the elapsed time is, the larger the contact determinationarea defined for the moving object is.

In a fourth aspect, the variable may represent a moving distance overwhich the moving object moves in the virtual three-dimensional space.

In a fifth aspect, the computer may change, in the area change step, thecontact determination area defined for the moving object such that thegreater the moving distance over which the moving object moves, thelarger the size of the contact determination area defined for the movingobject.

In a sixth aspect, the computer may change, in the area change step, atleast one of the size, the shape and the number of the contactdetermination area defined for the moving object such that an area sizeof the contact determination area of the moving object as viewed from amoving direction of the moving object is increased in accordance withthe variable being increased.

In a seventh aspect, the game program may cause the computer to furtherexecute a display control step of generating an image of the virtualthree-dimensional space such that a direction in which the moving objectis shot is a direction from a front side to a far side in the virtualthree-dimensional space on a screen, and displaying the image by adisplay device.

In an eighth aspect, for the size and the shape of the contactdetermination area defined for the moving object, predetermined size andshape may be used at a time when the moving object is shot. In thiscase, the area change step includes a multiplying factor calculationstep (S17) and a transformation step (S18). In the multiplying factorcalculation step, the computer calculates a multiplying factor inaccordance with the elapsed time after the moving object is shot. In thetransformation step, the computer transforms the contact determinationarea defined for the moving object at the time when the moving object isshot so as to be enlarged or reduced by using the multiplying factor.

In a ninth aspect, as the size and the shape of the contactdetermination area defined for the moving object, predetermined size andshape may be used at a time when the moving object is shot. In thiscase, the area change step includes a multiplying factor calculationstep (S17) and a transformation step (S18). In the multiplying factorcalculation step, the computer calculates a multiplying factor inaccordance with the moving distance over which the moving object moves.In the transformation step, the computer transforms the contactdetermination area defined for the moving object at the time when themoving object is shot so as to be enlarged or reduced by using themultiplying factor.

In a tenth aspect, the computer may determine, in the shooting step, adirection in which the moving object is shot, by using the input fromthe input device.

In an eleventh aspect, the moving object of a plurality of types may beshot in the virtual three-dimensional space. In this case, the computerdetermines, in the area change step, a degree of change to which thecontact determination area defined for the moving object is changed, foreach of the plurality of types of the moving object.

Further, the present invention may be provided as a game apparatushaving functions equivalent to those of the game apparatus whichexecutes the respective steps of the first to the eleventh aspects. Thegame apparatus may allow the CPU which executes the game program toexecute the respective steps described above, or may allow a dedicatedcircuit of the game apparatus to execute a portion of or all of thesteps described above.

According to the first aspect, at least one of the size of each contactdetermination area defined for the moving object, the shape of eachcontact determination area defined for the moving object, and the numberof the contact determination areas defined for the moving object ischanged in accordance with the moving distance over which the movingobject moves. Thus, the difficulty level at which the moving object hitsthe target object is changed in accordance with the moving distance. Forexample, the greater the moving distance is, the larger the contactdetermination area defined for the moving object is. In this case, themoving object more easily hits the target object, thereby reducing thedifficulty level of the game. On the other hand, the greater the movingdistance is, the smaller the contact determination area defined for themoving object is. In this case, the moving object less easily hits thetarget object, thereby increasing the difficulty level of the game. Inother words, at least one of the size of each contact determination areadefined for the moving object, the shape of each contact determinationarea defined for the moving object, and the number of the contactdetermination areas defined for the moving object is changed inaccordance with the moving distance, thereby readily adjusting thedifficulty level of the game. Further, in the present embodiment, thesize of the contact determination area defined for the moving object ischanged, and therefore the processing load for changing the contactdetermination area does not depend on the number of the target objects.Accordingly, the processing load of the game apparatus does not greatlychange depending on the number of the target objects, therebystabilizing the processing load of the game apparatus.

According to the second aspect, the contact determination area ischanged by using the elapsed time after the moving object is shot, andtherefore the contact determination area can be more easily changed ascompared to a case where an actual moving distance is calculated.

According to the third aspect, the longer the elapsed time after themoving object is shot is, the larger the size of the contactdetermination area is, and therefore the moving object is allowed tomore easily hit the target object distanced from a position at which themoving object has been shot. Thus, the difficulty level of the shootingcan be reduced, thereby allowing a beginner or a player poor at playingthe game to enjoy the shooting.

According to the fourth aspect, by calculating an actual movingdistance, the accurate moving distance is used so as to change thecontact determination area.

According to the fifth aspect, the greater the moving distance overwhich the moving object moves is, the larger the size of the contactdetermination area is, and therefore the moving object is allowed tomore easily hit the target object distanced from the position at whichthe moving object has been shot. Thus, the difficulty level of theshooting can be reduced, thereby allowing a beginner or a player poor atplaying the game to enjoy the shooting.

According to the sixth aspect, the moving object can more easily hit thetarget object, and therefore the difficulty level of the shooting can bereduced, thereby allowing a beginner or a player poor at playing thegame to enjoy the shooting.

According to the seventh aspect, the moving object is moved from thefront side to the far side in the virtual three-dimensional space on thescreen, and therefore the target object distanced from the shootingposition at which the moving object has been shot is displayed smallerthan the target object near the shooting position. In this case, themoving object hits, with enhanced difficulty, the target objectdistanced from the shooting position, and therefore it is substantiallyeffective to change the contact determination area such that the movingobject can more easily hit the target object as in the third, the fifthand the sixth aspects.

According to the eighth or the ninth aspect, the contact determinationarea is enlarged or reduced by using the multiplying factor determinedin accordance with the elapsed time or the moving distance, therebyeasily transforming the contact determination area in accordance withthe elapsed time or the moving distance. According to the tenth aspect,it is possible to shoot the moving object in the direction as intendedby a player.

According to the eleventh aspect, the difficulty level at which themoving object hits the target object may be set for each weapon object.

These and other objects, features, aspects and advantages of the presentinvention will become more apparent from the following detaileddescription of the present invention when taken in conjunction with theaccompanying drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is an external view illustrating a game system 1;

FIG. 2 is a functional block diagram of a game apparatus 3;

FIG. 3 is a perspective view illustrating an outer appearance of acontroller 5;

FIG. 4 is a perspective view illustrating an outer appearance of thecontroller 5;

FIG. 5 is a diagram illustrating an internal structure of the controller5;

FIG. 6 is a diagram illustrating an internal structure of the controller5;

FIG. 7 is a block diagram illustrating a structure of the controller 5;

FIG. 8 is a diagram illustrating a state where a game operation isperformed using the controller 5;

FIG. 9 is a diagram illustrating an exemplary game screen displayedthrough a game process according to an embodiment of the presentinvention;

FIG. 10 is a diagram illustrating a state where a contact determinationarea of an arrow object is changed;

FIG. 11 is a diagram illustrating main data stored in a main memory ofthe game apparatus 3;

FIG. 12 is a diagram illustrating exemplary contents of weapon list data65;

FIG. 13 is a diagram illustrating exemplary contents of moving objectdata 67;

FIG. 14 is a main flow chart showing a flow of the game processperformed by the game apparatus 3; and

FIG. 15 is a flow chart illustrating a flow of a movement controlprocess (step S6) shown in FIG. 14.

DESCRIPTION OF THE PREFERRED EMBODIMENTS

(Entire Structure of Game System)

With reference to FIG. 1, a game system 1 including a game apparatusaccording to an embodiment of the present invention will be described.FIG. 1 is an external view illustrating the game system 1. Hereinafter,a game apparatus and a game program according to the present embodimentwill be described by using a stationary game apparatus as an example. Asshown in FIG. 1, the game system 1 includes a television receiver(herein after, referred to simply as a television set) 2, a gameapparatus 3, an optical disc 4, a controller 5, and a marker section 6.The system according to the present embodiment allows the game apparatus3 to execute, based on a game operation through the controller 5, a gameprocess for a game in which a target object is shot in a virtualthree-dimensional space.

In the game apparatus 3, the exchangeable optical disc 4 typifying aninformation storage medium capable of reading data is detachableinserted. In the optical disc 4, the game program executed by the gameapparatus 3 is stored. The game apparatus 3 has, on the front surfacethereof, an opening through which the optical disc 4 is inserted. Thegame apparatus 3 executes the game process by reading and executing thegame program stored in the optical disc 4 which is inserted in the gameapparatus 3 through the opening. The game program may be previouslystored in an internal memory (which is preferably of a non-volatiletype, but which may be of a volatile type). Alternatively, the gameapparatus 3 may download the game program from a predetermined server(or another game apparatus) connected to the game apparatus 3 through anetwork, and stores the downloaded game program in the internal memory.

The game apparatus 3 is connected through a connection cord to thetelevision set 2 typifying a display device. The television set 2displays a game image generated through the game process executed by thegame apparatus 3. Further, the marker section 6 is provided in thevicinity of the screen of the television set 2 (on the top surface of ascreen of the television set 2 in FIG. 1). The marker section 6 includestwo markers, a marker 6R and a marker 6L, at both ends thereof.Specifically, each of the markers 6R and 6L includes at least oneinfrared LED, and emits an infrared light forward from the televisionset 2. The marker section 6 is connected to the game apparatus 3, andthe game apparatus 3 is capable of controlling each infrared LEDincluded in the marker section 6 so as to be lit up.

The controller 5 is an input device for supplying, to the game apparatus3, operation data representing a content of an action performed on thecontroller 5. The controller 5 is connected to the game apparatus 3 bywireless communication. In the present embodiment, for example, theBluetooth (registered trademark) technology is used for the wirelesscommunication between the controller 5 and the game apparatus 3. Thecontroller 5 and the game apparatus 3 need to communicate with eachother. Therefore, in another embodiment, the controller 5 and the gameapparatus 3 may communicate with each other by, for example, a wiredconnection.

(Internal Structure of Game Apparatus 3)

Next, with reference to FIG. 2, an internal structure of the gameapparatus 3 will be described. FIG. 2 is a block diagram illustrating astructure of the game apparatus 3. The game apparatus 3 includes: theCPU 10; a system LSI 11; an external main memory 12; a ROM/RTC 13; adisc drive 14; an AV-IC 15, and the like.

The CPU 10, serving as a game processor, executes the game programstored in the optical disc 4 so as to perform a game process. The CPU 10is connected to the system LSI 11. In addition to the CPU 10, theexternal main memory 12, the ROM/RTC 13, the disc drive 14, and theAV-IC 15 are also connected to the system LSI 11. The system LSI 11performs processing such as control of data transmission betweenrespective components connected thereto, generation of an image to bedisplayed, and acquisition of data from an external apparatus. Aninternal structure of the system LSI 11 will be described below. Theexternal main memory 12, which is of a volatile type, stores programs,such as a game program loaded from the optical disc 4 or the flashmemory 17, and various data, and is used as a work area and a bufferarea for the CPU 10. The ROM/RTC 13 includes a ROM (so-called a bootROM) incorporating a program for booting the game apparatus 3, and aclock circuit (RTC: real time clock) for counting time. The disc drive14 reads, from the optical disc 4, program data, texture data and thelike, and writes the read data into an internal main memory 11 edescribed below or the external main memory 12.

Provided in the system LSI 11 are an input/output process or 11 a, a GPU(graphics processor unit) 11 b, a DSP (digital signal processor) 11 c, aVRAM 11 d, and the internal main memory 11 e. These component 11 a, 11b, 11 c, 11 d and 11 e are connected to each other via an internal busnot shown.

The GPU 11 b, which is a part of rendering means, generates an image inaccordance with a graphics command (draw command) from the CPU 10. TheVRAM 11 d stores data (such as polygon data and texture data) necessaryfor the GPU 11 b to execute the graphics command. When an image isgenerated, the GPU 11 b generates image data by using the data stored inthe VRAM 11 d.

The DSP 11 c functions as an audio processor, and generates audio databy using sound data and sound waveform (tone quality) data stored in theinternal main memory 11 e and the external main memory 12.

The image data and the audio data generated as described above, are readby the AV-IC 15. The AV-IC 15 outputs the read image data to thetelevision set 2 via an AV connector 16, and also outputs the read audiodata to a speaker 2 a of the television set 2. Thus, the image isdisplayed on the television set 2, and the sound is outputted from thespeaker 2 a.

The input/output processor (I/O processor) 11 a executes data receptionand transmission among the components connected thereto and datadownloading from an external apparatus. The input/output processor 11 ais connected to the flash memory 17, a wireless communication module 18,the wireless controller module 19, an extension connector 20, and amemory card connector 21. To the wireless communication module 18, anantenna 22 is connected, and to the wireless controller module 19, anantenna 23 is connected.

The input/output processor 11 a is connected to a network via thewireless communication module 18 and the antenna 22 so as to communicatewith other game apparatuses or various servers connected to the network.The input/output processor 11 a accesses the flash memory 17 at regularintervals so as to detect for data to be transmitted to the network.When the data to be transmitted is detected, the data is transmitted tothe network via the wireless communication module 18 and the antenna 22.Further, the input/output processor 11 a receives, via the network, theantenna 22 and the wireless communication module 18, data transmittedfrom the other game apparatuses or data downloaded from a downloadserver, and stores the received data in the flash memory 17. The CPU 10executes the game program so as to read the data stored in the flashmemory 17, thereby using the read data on the game program. The flashmemory 17 may store not only the data transmitted and received among thegame apparatus 3, and other game apparatuses or the various servers, butalso saved data (result data or intermediate step data of the game) of agame played with the game apparatus 3.

Further, the input/output processor 11 a receives the operation datatransmitted from the controller 5 via the antenna 23 and the wirelesscontroller module 19, and (temporarily) stores the operation data in abuffer area of the internal main memory 11 e or the external main memory12.

Further, the input/output processor 11 a is connected to the extensionconnector 20 and the memory card connector 21. The extension connector20, which is a connector used for interface such as a USB and an SCSI,allows communication with the network, without using the wirelesscommunication module 18, by connecting, to the extension connector 20, amedia such as an external storage medium, or a peripheral device such asanother controller, or a wired communication connector. The memory cardconnector 21 is a connector for connecting to the memory card connector21 the external storage medium such as a memory card. For example, theinput/output processor 11 a accesses the external storage medium via theextension connector 20 or the memory card connector 21, so as to storedata in the external storage medium or read data from the externalstorage medium.

The game apparatus 3 includes a power button 24, a reset button 25, andan eject button 26. The power button 24 and the reset button 25 areconnected to the system LSI 11. When the power button 24 is pressed soas to be ON, the power is supplied to the respective components of thegame apparatus 3 via an AC adapter which is not shown. Further, when thereset button 25 is pressed, the system LSI 11 restarts a boot program ofthe game apparatus 3. The eject button 26 is connected to the disc drive14. When the eject button 26 is pressed, the optical disc 4 is ejectedfrom the disc drive 14.

(Structure of Controller 5)

Next, with reference to FIGS. 3 to 7, the controller 5 will bedescribed. Each of FIGS. 3 and 4 is a perspective view illustrating anouter appearance of the controller 5. FIG. 3 is a perspective view ofthe controller 5 as viewed from the top rear side thereof. FIG. 4 is aperspective view of the controller 5 as viewed from the bottom frontside thereof.

As shown in FIGS. 3 and 4, the controller 5 includes a housing 31 formedby plastic molding or the like. The housing 31 has a generallyparallelepiped shape extending in a longitudinal direction (Z-axisdirection shown in FIG. 3) from front to rear. The overall size of thehousing 31 is small enough to be held by one hand of an adult or even achild. An game operation can be performed when a player presses a buttonon the controller 5 and changes a position and an attitude of thecontroller 5 by moving the controller 5.

The housing 31 includes a plurality of operation buttons. As shown inFIG. 3, a cross button 32 a, a first button 32 b, a second button 32 c,and an A button 32 d, a minus button 32 e, a home button 32 f, a plusbutton 32 g and a power button 32 h are provided on the top surface ofthe housing 31. On the other hand, as shown in FIG. 4, on a bottomsurface of the housing 31, a recessed portion is provided. A B button 32i is provided on the rear slope surface of the recessed portion. Theoperation buttons 32 a, 32 b, 32 c, 32 d, 32 e, 32 f, 32 g, 32 h, and 32i are assigned with various functions in accordance with the gameprogram executed by the game apparatus 3, as necessary. The power button32 h is used for remotely controlling a power of a body of the gameapparatus 3 to be On or OFF. The home button 32 f and the power button32 h each has a top surface thereof buried in the top surface of thehousing 31. Therefore, a player is prevented from inadvertently pressingthe home button 32 f and the power button 32 h.

On the rear surface of the housing 31, a connector 33 is provided. Theconnector 33 is used for connecting the controller 5 to another device(for example, another controller).

On the top surface of the housing 31, a plurality (four in FIG. 3) ofLEDs 34 a, 34 b, 34 c, and 34 d are provided in the vicinity of the rearthereof. The controller 5 is assigned with a controller type (number) soas to be distinguishable from the other controllers 5. For example, theLEDs 34 a, 34 b, 34 c, and 34 d are used for informing a player of thecontroller type which is currently set to controller 5 that he or she isusing, or informing a player of a remaining battery charge of thecontroller 5. Specifically, when a game is played using the controller5, one of the plurality of LEDs 34 a, 34 b, 34 c, and 34 d correspondingto the controller type is lit up.

The controller 5 includes an imaging information calculation section 35(FIG. 6), and a light incident surface 35 a of the imaging informationcalculation section 35 is provided on the front surface of the housing31, as shown in FIG. 4. The light incident surface 35 a is formed by amaterial which allows at least an infrared light from the markers 6R and6L to pass therethrough. A sound hole 31 a for outputting a sound from aspeaker 49 (FIG. 5) included in the controller 5 is provided between thefirst button 32 b and the home button 32 f on the top surface of thehousing 31.

With reference to FIGS. 5 and 6, an internal structure of the controller5 will be described. Each of FIGS. 5 and 6 is a diagram illustrating theinternal structure of the controller 5. FIG. 5 is a perspective viewillustrating a state where an upper casing (a part of the housing 31) ofthe controller 5 is removed. FIG. 6 is a perspective view illustrating astate where a lower casing (a part of the housing 31) of the controller5 is removed. FIG. 6 is a perspective view illustrating a reverse sideof a substrate 30 shown in FIG. 5.

As shown in FIG. 5, the substrate 30 is fixed inside the housing 31. Ona top main surface of the substrate 30, the operation buttons 32 a, 32b, 32 c, 32 d, 32 e, 32 f, 32 g and 32 h, the LEDs 34 a, 34 b, 34 c, and34 d, an acceleration sensor 37, an antenna 45, the speaker 49 and thelike are provided. These elements are connected to a microcomputer 42(see FIG. 6) via lines (not shown) formed on the substrate 30 and thelike. In the present embodiment, the acceleration sensor 37 is providedoff the center of the X-axis of the controller 5. Accordingly, amovement of the controller rotating about the Z-axis is readilycalculated. Further, the acceleration sensor 37 is provided in front ofthe longitudinal (Z-axis direction) center of the controller 5. Further,the controller 5 having a wireless module 44 (FIG. 7) and an antenna 45functions as a wireless controller.

As shown in FIG. 6, at a front edge of a bottom main surface of thesubstrate 30, the imaging information calculation section 35 isprovided. The imaging information calculation section 35 includes aninfrared filter 38, a lens 39, the image pickup element 40 and an imageprocessing circuit 41 located in order, respectively, from the frontsurface of the controller 5 on the bottom main surface of the substrate30.

On the bottom main surface of the substrate 30, the microcomputer 42 anda vibrator 48 is provided. The vibrator 48 may be, for example, avibration motor or a solenoid, and is connected to the microcomputer 42by a wiring formed on the substrate 30 and the like. The controller 5 isvibrated by actuating the vibrator 48 in accordance with an instructionfrom the microcomputer 42, and the vibration is conveyed to the player'shand holding the controller 5. Thus, a so-called vibration-feedback gameis realized. In the present embodiment, the vibrator 48 is positionedslightly in front of the longitudinal center of the housing 31. That is,the vibrator 48 is provided not at the center of the controller 5 but inthe vicinity of the edge thereof, and therefore the vibration of thevibrator 48 allows a vibration of the whole controller 5 to be enhanced.The connector 33 is provided at the rear edge of the bottom main surfaceof the substrate 30. In addition to the elements shown in FIGS. 5 and 6,the controller 5 includes a quartz oscillator for generating a referenceclock of the microcomputer 42, an amplifier for outputting an audiosignal to the speaker 49, and the like.

The shape of the controller 5, the shapes of the operation buttons, thenumber and the setting position of each of the acceleration sensor andthe vibrator, and the like, which are shown in FIGS. 3 to 6, are onlyexamples. Needless to say, even when the shape of the controller 5, theshapes of the operation buttons, the number and the setting position ofeach of the acceleration sensor and the vibrator are different fromthose described in the example, the present invention can be realized.Further, although in the present embodiment the imaging direction of theimage pickup means is Z-axis positive direction, the imaging directionmay be any other direction. That is, the position (the light incidentsurface 35 a of the imaging information calculation section 35) at whichthe controller 5 has the imaging information calculation section 35mounted therein may not necessarily be the front surface of the housing31. The imaging information calculation section 35 may be provided onany other surface of the controller 5 at which a light can be receivedfrom the outside of the housing 31.

FIG. 7 is a block diagram illustrating the structure of the controller5. The controller 5 includes the operation section 32 (the respectiveoperation buttons 32 a, 32 b, 32 c, 32 d, 32 e, 32 f, 32 g, 32 h, and 32i), the connector 33, the imaging information calculation section 35,the communication section 36, and the acceleration sensor 37. Thecontroller 5 transmits, as operation data, data indicating a content ofan operation performed on the controller 5, to the game apparatus 3.

The operation section 32 includes the respective operation buttons 32 a,32 b, 32 c, 32 d, 32 e, 32 f, 32 g, 32 h, and 32 i as describe above,and transmits, to the microcomputer 42 of the communication section 36,operation button data indicating an input state of each of the operationbuttons 32 a, 32 b, 32 c, 32 d, 32 e, 32 f, 32 g, 32 h, and 32 i (thatis, input state as to whether or not each of the operation buttons 32 a,32 b, 32 c, 32 d, 32 e, 32 f, 32 g, 32 h, and 32 i is pressed).

The imaging information calculation section 35 is a system for analyzingimage data taken by the image pickup means and determining the positionof the center of gravity, the size and the like of an area having a highbrightness in the image. The imaging information calculation section 35has, for example, a maximum sampling period of about 200 frames/sec.,and therefore can trace and analyze even a relatively fast motion of thecontroller

The imaging information calculation section 35 includes the infraredfilter 38, the lens 39, the image pickup element 40 and the imageprocessing circuit 41. The infrared filter 38 allows only infrared lightto pass therethrough, among light incident on the front surface of thecontroller 5. The lens 39 collects the infrared light which has passedthrough the infrared filter 38 and outputs the infrared light to theimage pickup element 40. The image pickup element 40 is a solid-stateimage pick-up device such as, for example, a CMOS sensor or a CCDsensor. The image pickup element 40 receives the infrared lightcollected by the lens 39 so as to output an image signal. The marker 6Rand the marker 6L of the marker section 6 positioned in the vicinity ofthe display screen of the television set 2 each includes an infrared LEDfor outputting an infrared light forward from the television set 2.Accordingly, the infrared filter 38 allows the image pickup element 40to receive only the infrared light which has passed through the infraredfilter 38 and generate image data, so that images of the marker 6R andthe marker 6L can be taken with enhanced accuracy. In the followingdescription, an image taken by the image pickup element 40 is referredto as a taken image. The image data generated by the image pickupelement 40 is processed by the image processing circuit 41. The imageprocessing circuit 41 calculates a position of an imaging target (marker6R and marker 6L) in the taken image. Hereinafter, a coordinate pointindicating the calculated position of the marker is referred to as“marker coordinate point”. The image processing circuit 41 outputs data(marker coordinate point data) of the marker coordinate point to themicrocomputer 42 of the communication section 36. The microcomputer 42transmits the marker coordinate point data to the game apparatus 3 asoperation data. The marker coordinate point changes in accordance with adirection (attitude) and a position of the controller 5, and thereforethe game apparatus 3 can use the marker coordinate point to calculatethe direction and the position of the controller 5.

The acceleration sensor 37 detects for an acceleration (includinggravitational acceleration) of the controller 5. Specifically, theacceleration sensor 37 detects for a force (including gravity) appliedto the controller 5. The acceleration sensor 37 detects for a valuerepresenting an acceleration (linear acceleration) in the lineardirection along a sensing axis direction among accelerations applied tothe detection section of the acceleration sensor 37. In the presentembodiment, the acceleration sensor 37 detects for a linear accelerationin each of three axial directions, that is, the up/down direction(Y-axis direction shown in FIG. 3), the left/right direction (X-axisdirection shown in FIG. 3), and the forward/backward direction (Z-axisdirection shown in FIG. 3) relative to the controller 5. The detectedacceleration is represented as a three-dimensional vector (AX, AY, AZ)of an XYZ coordinate system defined relative to the controller 5. Data(acceleration data) representing an acceleration detected by theacceleration sensor 37 is outputted to the communication section 36. Theacceleration detected by the acceleration sensor 37 changes inaccordance with a direction (attitude) and a movement of the controller5, and therefore the game apparatus 3 can calculate the direction andthe movement of the controller 5 by using the acceleration data.

The communication section 36 includes the microcomputer 42, a memory 43,the wireless module 44 and the antenna 45. The microcomputer 42 controlsthe wireless module 44 for wirelessly transmitting, to the gameapparatus 3, data acquired by the microcomputer 42 while using thememory 43 as a storage area during the processing.

Data (operation button data, marker coordinate point data, andacceleration data) outputted to the microcomputer 42 from the operationsection 32, the imaging information calculation section 35, and theacceleration sensor 37 are temporarily stored in the memory 43. Therespective data are transmitted to the game apparatus 3 as the operationdata. At a time of transmission to the wireless controller module 19 ofthe game apparatus 3, the microcomputer 42 outputs, to the wirelessmodule 44, the operation data stored in the memory 43. The wirelessmodule 44 uses, for example, the Bluetooth (registered trademark)technology to modulate the operation data onto a carrier wave of apredetermined frequency, and radiates the low power radio wave signalfrom the antenna 45. Thus, the operation data is modulated onto the lowpower radio wave signal by the wireless module 44 and transmitted fromthe controller 5. The wireless controller module 19 of the gameapparatus 3 receives the low power radio wave signal. The received lowpower radio wave signal is demodulated or decoded so as to allow thegame apparatus 3 to acquire the operation data. Based on the acquiredoperation data and the game program, the CPU 10 of the game apparatus 3performs the game process. The wireless transmission from thecommunication section 36 to the wireless controller module 19 isperformed periodically at predetermined time intervals. Since gameprocess is generally performed at a cycle of 1/60 sec. (one frame time),the transmission is preferably performed at a cycle of a time periodshorter than the one frame time. The communication section 36 of thecontroller 5 outputs the respective operation data to the wirelesscontroller module 19 of the game apparatus 3 once every 1/200 seconds,for example.

When a player uses the controller 5, the player is allowed to perform anoperation of designating any position on the screen by using thecontroller 5, and an operation of moving the controller 5 as well as aconventional typical game operation of pressing the respective operationbuttons. FIG. 8 is a diagram illustrating a state where the controller 5is used to perform a game operation. In the present embodiment, as shownin FIG. 8, a player is allowed to perform a game operation of moving thecontroller 5 (specifically, changing an attitude of the controller 5),and a game operation of designating a position P on the screen of thetelevision set 2 by using the controller 5.

The position P shown in FIG. 8 is a position designated on the screen byusing the controller 5, and the position P is ideally a position atwhich a straight line extending from the front edge of the controller 5in the longitudinal direction intersects the screen of the televisionset 2. As described below in detail, the game apparatus 3 calculates theposition P based on the marker coordinate point described above.However, the position need not be exactly calculated by the gameapparatus 3, and the game apparatus 3 may calculate a position in thevicinity of a designated position. Hereinafter, a position (position Pshown in FIG. 8) designated on the screen by using the controller 5 isreferred to as “a pointing position”.

(Outline of Process Performed by Game Apparatus)

Hereinafter, with reference to FIGS. 9 and 10, an outline of the gameprocess performed by the game apparatus 3 will be described. In thefollowing description, the game process will be described by using anexemplary game in which a player shoots an object representing a targetin a virtual three-dimensional space.

FIG. 9 is a diagram illustrating an exemplary game screen displayedthrough the game process according to the present embodiment. As shownin FIG. 9, target objects 51 to 54, and an arrow object 55 arepositioned in a virtual three-dimensional space (game space) structuredin a game of the present embodiment. Further, an image representing anaim 56 as well as an image representing the three-dimensional space isdisplayed on the screen of the television set 2. The game of the presentembodiment is a shooting game in which a moving object such as the arrowobject 55 is shot so as to hit the target objects 51 to 54. The targetobjects 51 to 54 are objects representing shooting targets. In FIG. 9,the target objects 51 to 54 are objects representing targets. However,the target object may have any size and shape. For example, in anotherembodiment, the target object may be an object representing a monster.Further, the target objects 51 to 54 may move in the game space.

The arrow object 55 is shot from a weapon object and typifies a movingobject which moves in the game space. In FIG. 9, a bow object (a bowobject 58 shown in FIG. 10) is used as the weapon object, and the arrowobject 55 is used as the moving object. However, any object may be usedas each of the weapon object and the moving object. For example, anobject representing a gun may be used as the weapon object, and anobject representing a bullet may be used as the moving object. In thepresent embodiment, a player object is allowed to use a plurality ofweapon objects. That is, a player is allowed to select one of aplurality of weapon objects so as to perform shooting.

The aim 56 represents a mark at which the arrow object 55 is shot. Theaim 56 indicates a direction (shooting direction) in which an arrowobject is shot. Specifically, the arrow object 55 is shot from aposition of the weapon object in the three-dimensional game space towarda position (in the game space) designated by the aim 56. Further, in thepresent embodiment, a position of the aim 56 in a two-dimensional gameimage is set to the pointing position. Therefore, in the presentembodiment, the direction in which the arrow object 55 is shot isdetermined in accordance with a position (pointing position) designatedon the screen by using the controller 5, and therefore a player movesthe controller 5 so as to change a position designated on the screen byusing the controller 5, so that it is possible to control the directionin which the arrow object 55 is shot.

In FIG. 9, a bow object from which the arrow object 55 is shot and aplayer character (see FIG. 10) holding the bow object are not displayed.However, in another embodiment, the bow object and the player charactermay be displayed.

Further, in the present embodiment, as shown in FIG. 9, an image of thegame space is generated such that the direction in which the arrowobject 55 is shot is a direction from the front side toward the far sidein the game space on the screen. Specifically, the line-of-sightdirection of the virtual camera is defined in the game space such thatthe line-of-sight direction is substantially the same as the directionin which the arrow object 55 is shot (that is, such that an anglebetween the line-of-sight direction and the direction in which the arrowobject 55 is shot represents an acute angle).

When a player plays the shooting game, the player controls thecontroller 5 so as to position the aim 56 at a desired position, andpresses, for example, the A button 32 d, thereby issuing an instructionfor shooting. The arrow object 55 is shot from the bow object inresponse to the instruction for shooting. Specifically, the arrow object55 is generated and the generated arrow object 55 is moved from theposition of the bow object toward the shooting direction in the gamespace.

Whether or not the arrow object 55 shot in response to the instructionfor shooting has hit any of the target objects 51 to 54 is determined byusing a contact determination area defined for each of the objects 51 to55. Specifically, whether or not the arrow object 55 has hit any of thetarget objects 51 to 54, that is, whether or not the arrow object 55contacts any of the target objects 51 to 54 is determined based onwhether or not the contact determination area defined for the arrowobject 55 contacts any of the contact determination areas defined forthe respective target objects 51 to 54. The contact determination arearepresents an area defined for each object so as to determine whether ornot two objects contact each other. In the present embodiment, thecontact determination area has a spherical shape, and at least onespherical contact determination area is defined for each one object.Further, a position of the contact determination area defined for anobject is determined in accordance with a position of the object.Whether or not the objects contact each other is determined (that is, acontact determination process is performed) each time a game image isgenerated, that is, for each frame.

FIG. 10 is a diagram illustrating a state where the contactdetermination area of the arrow object is changed. FIG. 10 shows a gamespace as viewed from the direction perpendicular to the moving directionin which the arrow object 55 moves. In FIG. 10, the arrow object 55which is at a position immediately following a position at which thearrow object 55 has been shot by the bow object 58 held by a playerobject 59 and a contact determination area 57 defined for the arrowobject 55 at the immediately following position are represented bydotted lines, and the arrow object 55 having been moved over a certaindistance after the arrow object 55 has been shot and the contactdetermination area 57 for the arrow object 55 having been moved over thecertain distance are represented by solid lines.

As shown in FIG. 10, the contact determination area 57 of the arrowobject 55 at the position immediately following the position at whichthe arrow object 55 has been shot has a spherical shape of a relativelysmall radius, where as the contact determination area 57 of the arrowobject 55 having been moved over the certain distance after the arrowobject 55 has been shot has a spherical shape of a relatively largeradius. As described above, in the present embodiment, the contactdetermination area 57 of the arrow object 55 is set such that the longera distance over which the arrow object 55 has been moved, the larger thecontact determination area 57 of the arrow object 55 is. Therefore, inthe present embodiment, the more easily the arrow object 55 can contactthe target object, the longer the distance over which the arrow object55 is moved from a position (shooting position) at which the arrowobject 55 has been shot. That is, the longer the distance over which thearrow object 55 is moved from the shooting position, the more easily anarrow hits a target.

In the shooting game (see FIG. 9) in which the line-of-sight directionof the virtual camera is substantially the same as the direction inwhich the arrow object is shot, the target object (for example, thetarget object 54 shown in FIG. 9) which is far from the shootingposition is displayed so as to be smaller than the target object (forexample, the target object 51 shown in FIG. 9) which is near theshooting position, so that it is difficult that the arrow object hitsthe target object. In the present embodiment, the longer the movingdistance over which the arrow object moves, the larger the contactdetermination area of the arrow object is, thereby reducing difficultylevel at which an arrow is shot so as to hit a target. Thus, a beginneror a player poor at playing the game is allowed to shoot an arrow so asto easily hit a target. Further, the size of the contact determinationarea is not large at a position near the shooting position, andtherefore the game is not too easy to play, thereby appropriatelysetting the difficulty level of the game. Further, in anotherembodiment, the longer the moving distance is, the smaller the contactdetermination area of the arrow object is. In this case, the difficultylevel of the game is increased. As describe above, according to thepresent invention, the contact determination area of the arrow object ischanged in accordance with the moving distance over which the arrowobject is moved, thereby easily changing the difficulty level of theshooting game.

Further, in the present embodiment, the contact determination area ofthe arrow object is changed, and therefore a processing load with whichthe contact determination area is changed does not depend on the numberof target objects. Therefore, the processing load of a system does notgreatly change depending on the number of target objects, so that thegame apparatus 3 can perform the game process with constant processingload.

(Detailed Game Process)

Hereinafter, with reference to FIGS. 11 to 15, the game processaccording to the present embodiment will be described in detail.Initially, data used in the game process according to the presentembodiment will be described. FIG. 11 is a diagram illustrating maindata stored in the main memory (the external main memory 12 or theinternal main memory 11 e) of the game apparatus 3. As shown in FIG. 11,a game program 60, operation data 61, game process data 64 and the likeare stored in the main memory.

The game program 60 is a program for causing the CPU 10 of the gameapparatus 3 to perform the game process (FIG. 14) described below. Thegame program 60 is partially or entirely loaded from the optical disc 4at an appropriate time after the game apparatus 3 is powered on and isstored in the main memory.

The operation data 61 is transmitted from the controller 5 to the gameapparatus 3 and stored in the main memory. The operation data 61includes marker coordinate point data 62 and operation button data 63.The marker coordinate point data 62 represents the marker coordinatepoint calculated by the imaging information calculation section 35. Theoperation button data 63 represents an input state of the respectiveoperation buttons 32 a, 32 b, 32 c, 32 d, 32 e, 32 f, 32 g, 32 h, and 32i. The operation data 61 includes not only the marker coordinate pointdata 62 and the operation button data 63 but also acceleration datarepresenting an acceleration vector detected by the acceleration sensor37. As described above, the operation data is transmitted from thecontroller 5 to the game apparatus 3 once every 1/200 seconds, and theoperation data to be stored in the main memory is also updated onceevery 1/200 seconds. Only the most recent operation data (having beenmost recently acquired) may be stored in the main memory.

The game process data 64 is used in the game process described belowwith reference to FIG. 14. The game process data 64 includes weapon listdata 65, most recent weapon data 66, moving object data 67, and targetdata 75. The game process data 64 includes data necessary for the gameprocess such as image data of various objects appearing in the game anddata representing various parameters of the object, in addition to thedata shown in FIG. 11.

The weapon list data 65 represents various information relating to aweapon object. In the present embodiment, a player object is allowed touse a plurality of weapons each having a difference performance. Theweapon list data 65 is previously stored in the optical disc 4 togetherwith the game program, and read from the optical disc 4 as necessarywhen, for example, the game is started. FIG. 12 is a diagramillustrating exemplary contents of the weapon list data 65. As shown inFIG. 12, in the present embodiment, the weapon list data 65 representsthe weapon objects each associated with information indicating a weaponID, a maximum flying distance, a speed, and a reference radius. Theweapon ID represents a number, unique to a weapon object, by which theweapon object is identified. The maximum flying distance representsinformation indicating a maximum flying distance over which a movingobject shot by the weapon object is allowed to move. The speedrepresents information indicating a speed (for example, a distance overwhich the moving object moves for each one frame time) of the movingobject having been shot by the weapon object. In the present embodiment,the moving object moves at a constant speed. In another embodiment, thespeed of the moving object may be gradually attenuated. In this case, inthe weapon list data 65, a weapon object may be associated with aninitial speed and a deceleration degree of the moving object. Further,the reference radius represents a radius of the contact determinationarea which is defined for the moving object at a time when the weaponobject shoots the moving object.

The most recent weapon data 66 represents a weapon object beingcurrently used. Specifically, the most recent weapon data 66 representsthe weapon ID of a weapon object being currently used. In the presentembodiment, a player object (a player) is allowed to use one of thevarious weapon objects represented by the weapon list data 65. The gameapparatus 3 may allow a player to select one of the weapon objects to beused before starting the game, or may allow a player to change a weaponobject to be used while playing the game.

The moving object data 67 represents various information relating toeach of the moving objects positioned in the game space. FIG. 13 is adiagram illustrating exemplary contents of the moving object data 67. Asshown in FIG. 13, the moving object data 67 includes object ID data 68,weapon ID data 69, position data 70, elapsed time data 71, movingdistance data 72, determination area radius data 73, and shootingdirection data 74, for each moving object positioned in the game space.The data 68 to 74 are associated with each other for each moving objectand are stored.

The object ID data 68 is a number, unique to a moving object, by whichthe moving object positioned in the game space is identified. The weaponID data represents the weapon ID of the weapon object by which themoving object is shot. The position data 70 represents a position of themoving object in the game space. The position is represented as acoordinate value used for the world coordinate system described above.The elapsed time data 71 represents a time which has elapsed after themoving object is shot. The moving distance data 72 represents a distanceover which the moving object moves in the game space after the movingobject has been shot. The determination area radius data 73 represents amost recent radius of the contact determination area defined for themoving object. The shooting direction data 74 represents a direction inwhich the moving object is shot. The direction is represented as athree-dimensional vector (unit vector) having a direction in the gamespace.

The target data 75 represents various information relating to a targetobject positioned in the game space. Specifically, the target data 75represents a position of each target object in the game space.

Next, a game process performed by the game apparatus 3 will be describedin detail with reference to FIGS. 14 and 15. FIG. 14 is a main flowchart illustrating a flow of the game process performed by the gameapparatus 3. When the game apparatus 3 is powered on, the CPU 10 of thegame apparatus 3 executes a boot program stored in the boot ROM notshown, so as to initialize the respective units such as the main memory.The game program stored in the optical disc 4 is loaded to the mainmemory, and the CPU 10 starts to execute the game program. The flowchart shown in FIG. 14 is a flow chart illustrating a process performedafter the process described above is completed.

In step S1 shown in FIG. 14, the CPU 10 initially performsinitialization relating to the game. Specifically, the CPU 10 loads,from the optical disc 4, data relating to a game character such as aplayer object, data relating to a topography object used for forming athree-dimensional game space, and the like. The CPU 10 uses the readdata to form the three-dimensional space of the field, and performs aprocess of positioning the player object and other objects at an initialposition of the field, and the like. At this time, the target data 75representing an initial position of each target object is stored in themain memory. Further, in the present embodiment, the weapon list data 65is read from the game program and stored in the main memory in theinitialization process. Further, in the initialization process, a weaponused when the game is stared is set. Specifically, the most recentweapon data 66 representing a predetermined weapon object is stored inthe main memory. In another embodiment, the game apparatus 3 may allow aplayer to select a weapon to be used when the game is started.

Following step S1, a process loop of steps S2 to S10 is repeated whilethe game is played. One process loop is performed once every one frametime (corresponding to, for example, 1/60seconds).

In step S2, the CPU 10 acquires the operation data. That is, theoperation data transmitted from the controller 5 is received by the gameapparatus 3, and stored in the main memory. Therefore, the CPU 10 reads,from the main memory, the marker coordinate point data 62 and theoperation button data 63 included in the operation data 61. Followingstep S2, step S3 is performed.

In step S3, the CPU 10 moves the object on the field. That is, theplayer object is moved in accordance with a player operating thecontroller 5, and/or the target object is moved in accordance with apredetermined algorithm. When the target object is moved, the content ofthe target data 75 in the main memory is updated. That is, datarepresenting a position of each target object having been moved isstored as the target data 75 in the main memory. Following step S3, stepS4 is performed.

In step S4, the CPU 10 determines whether or not a player issues aweapon change instruction. The weapon change instruction is aninstruction for changing a weapon used by a player object. In thepresent embodiment, a player presses a predetermined menu display button(for example, the minus button 32 e) so as to display a menu screen(step S4), and changes a weapon by selecting a weapon on the menu screenwith, for example, the cross button 32 a and the A button 32 d (step S5described below). Specifically, in step S4, the CPU 10 determines, inaccordance with the operation button data 63 acquired in step S2,whether or not the menu display button is pressed. When thedetermination result of step S4 is positive, step S5 is performed. Onthe other hand, when the determination result of step S4 is negative,step S5 is skipped, and step S6 described below is performed.

In step S5, the CPU 10 changes a weapon used by the player object.Specifically, the CPU 10 initially displays, on the television set 2, amenu screen including a list of usable weapons. The operation data isacquired from the main memory at predetermined time intervals so as toreceive an operation of selecting a weapon. When the menu screen isdisplayed, a player designates, on the menu screen, a desired weaponincluded in the list of weapons by using the cross button 32 a, andsimultaneously presses the A button 32 d, so as to determine a weapon tobe used. When the player determines the weapon, the CPU 10 changes aweapon to be used by the player object. That is, the most recent weapondata 66 representing the determined weapon is stored in the main memory.Thus, a weapon used by the player object is changed.

In step S6, the CPU 10 performs a movement control process. In themovement control process, the moving object positioned in the game spaceis moved and the contact determination area of the moving object isincreased in accordance with the moving distance over which the movingobject moves. Hereinafter, with reference to FIG. 15, the movementcontrol process will be descried in detail.

FIG. 15 is a flow chart illustrating a flow of the movement controlprocess (step S6) shown in FIG. 14. In the movement control process, theCPU 10 determines, in step S11, whether or not a shooting instruction isissued. The shooting instruction is an instruction for causing theweapon object to shoot the moving object. In the present embodiment, aplayer can issue the shooting instruction by pressing a predeterminedshooting button (for example, the A button 32 d). Accordingly, the CPU10 determines whether or not the shooting button is pressed, withreference to the operation button data 63 acquired in step S2. When thedetermination result of step S11 is positive, step S12 is performed. Onthe other hand, when the determination result of step S11 is negative,step S12 is skipped and step S13 described below is performed.

In step S12, the CPU 10 generates a new moving object. Specifically, anew moving object is positioned at a predetermined position in thevicinity of the weapon object in the game space. Further, the CPU 10updates the content of the moving object data 67 stored in the mainmemory. Specifically, the object ID data, the weapon ID data, theposition data, the elapsed time data, the moving distance data, theradius data, and the shooting direction data which are associated witheach other are additionally stored as new one piece of moving objectdata 67. Hereinafter, the contents of the respective data, that is, thecontents of the various information set for the new moving object willbe described.

The respective various information relating to the new moving object areset in the following manner. Specifically, the object ID of the newmoving object is set so as to have a number which is different from thenumbers represented by the object ID data of the other moving objectsalready included in the moving object data 67. The weapon ID of the newmoving object is set so as to have the same number as the numberrepresented by the most recent weapon data 66. The position of the newmoving object is set to a predetermined position based on the mostrecent position of the weapon object. The predetermined positioncorresponds to a position (shooting position) at which the moving objectis shot. Each of the elapsed time and the moving distance of the newmoving object is set to zero. The radius of the contact determinationarea defined for the new moving object is set so as to have a valuerepresenting a radius defined for a time at which the new moving objectis shot, that is, a value representing the reference radius. The valuerepresenting the reference radius is a value representing the referenceradius which is included in the weapon list data 65 and set for theweapon object which is represented by the most recent weapon data 66.Further, the shooting direction in which the new moving object is shotis determined in accordance with the pointing position designated at atime when the shooting instruction is issued.

Hereinafter, a method for calculating the pointing position will bedescribed, and thereafter a method for determining the shootingdirection will be described. The pointing position representing aposition, on the screen, designated by using the controller 5 iscalculated based on the marker coordinate point data 62. Specifically,the CPU 10 initially calculates a middle point between two markercoordinate points represented by the marker coordinate point data 62stored in the main memory. A position of the middle point is representedusing an xy-coordinate system used for representing a position on aplane corresponding to the taken image. In the xy-coordinate system, theupper left corner of the taken image is defined as the originatingpoint, the downward direction thereof is defined as the y-axis positivedirection, and the rightward direction thereof is defined as the x-axispositive direction. Next, the CPU 10 transforms a coordinate pointrepresenting the position of the middle point to a coordinate pointrepresented using a coordinate system (x′y′-coordinate system) used forrepresenting a corresponding position on the screen of the televisionset 2. When, in the x′y′-coordinate system, the upper left corner of thescreen is defined as the originating point, the downward directionthereof is defined as the y-axis positive direction, and the rightwarddirection thereof is defined as the x-axis positive direction, thetransformation as described above can be performed in the followingmanner. Specifically, a sign (plus or minus) of an x-component of thecoordinate point of the middle point is changed to an opposite sign andthe x-component is scaled at a predetermined rate (for example, a rateat which the length of the taken image in the x-axis direction is scaledso as to correspond to the length of the screen of the television set 2in the x′-axis direction), thereby obtaining the x′-component of thepointing position. Further, a y-component of the coordinate point of themiddle point is scaled at a predetermined rate (for example, a rate atwhich the length of the taken image in the y-axis direction is scaled soas to correspond to the length of the screen of the television set 2 inthe y′-axis direction), thereby obtaining the y′-component of thepointing position. The position represented by the x′y′-coordinate valuehaving been calculated as described above is used as the pointingposition. Further, an exemplary method for calculating the pointingposition with enhanced accuracy is as follows. Specifically, the middlepoint between the two marker coordinate points is rotated about thecenter of the taken image such that a vector connecting between the twomarker coordinate points is parallel with the y-axis, and the middlepoint having been rotated is subjected the aforementioned transformationprocess. In the correction process using the rotation, even when thecontroller 5 is tilted, the pointing position can be accuratelycalculated. In the present embodiment, an image of the aim is displayedat the pointing position having been calculated.

The shooting direction is calculated based on the pointing positionhaving been calculated as described above. Specifically, the CPU 10initially calculates a target position based on the pointing position.The target position is a position, in the game space, corresponding tothe pointing position. Further, the CPU 10 calculates, as the shootingdirection, the direction from the shooting position to the targetposition. The data representing the shooting direction having beencalculated is stored in the main memory as shooting direction data so asto be included in the moving object data 67. A vector representing theshooting direction is normalized as a unit vector, and data representingthe normalized vector is stored as the shooting direction data.

In the present embodiment, the shooting direction is determined inaccordance with an operation of a player designating a position on thescreen by using the controller 5. However, the shooting direction may bedetermined in accordance with another operation performed by a player.For example, the game apparatus 3 may change the shooting direction(that is, the aim is moved on the screen) in accordance with anoperation performed on the cross key 32 a. Therefore, the controller 5is not necessarily required to have the imaging information calculationsection 35 and the acceleration sensor 37. The controller 5 may includeonly a typical operation button. Further, in another embodiment, theshooting direction (or a position of the aim) may be automatically movedby the game apparatus 3.

In step S12, a new moving object to be shot is generated, and datarepresenting various information relating to the new moving object isadded to the moving object data 67. Following step S12, step S13 isperformed.

In step S13, the CPU 10 updates the elapsed time of the moving object.That is, a predetermined time is added to the elapsed time for eachmoving object positioned in the game space. In the present embodiment,step S13 is performed once every one frame time, and therefore thepredetermine time corresponds to the one frame time. Specifically, theCPU 10 updates the content of the elapsed time data included in themoving object data 67 so as to represent a value obtained by adding onlythe predetermined time to the value having been most recently obtained.The CPU 10 updates the elapsed time for each moving object appearing inthe game space. Following step S13, step S14 is performed.

In step S14, the CPU 10 moves the moving object. The moving object ismoved at a speed for the moving object in a shooting direction for themoving object. “A shooting direction for the moving object” is ashooting direction represented by shooting direction data associatedwith the moving object in the moving object data 67. Further, “a speedfor the moving object” is a speed associated with the weapon objectcorresponding to the moving object in the weapon list data 65. In stepS14, all the moving objects appearing in the game space are moved.Further, the content of position data included in the moving object data67 is updated in accordance with the moving object being moved. That is,the content of the position data is updated so as to represent a contentrepresenting a position of the moving object having been moved.

In step S14, each moving object appearing in the game space is moved. Instep S14, each moving object is controlled so as to linearly move at aconstant speed. However, in another embodiment, the game apparatus 3 maycontrol the moving object so as to move in consideration of physicalconditions such as the direction of gravity and air resistance. Forexample, the game apparatus 3 may control the speed of the moving objectso as to be gradually reduced, or may control the shooting directionsuch that the moving path of the moving object forms a parabola. At thistime, the shooting direction and the speed of the moving object may beupdated for each frame. When the speed of the moving object is changed,the game apparatus 3 stores data representing a most recent speed so asto be included in the moving object data 67.

Following step S14, in step S15, the CPU 10 calculate a moving distanceof the moving object. The moving distance of the moving object can becalculated by accumulating the moving distance of the moving object foreach frame. Specifically, the moving distance of the moving object iscalculated by adding, to the moving distance represented by the movingdistance data included in the moving object data 67, the moving distanceover which the moving object is moved in step S14 of the loop processbeing currently performed. Data representing the moving distanceobtained through the calculation is stored as updated moving distancedata in the main memory. In step S15, the moving distance of each movingobject appearing in the game space is calculated. When the moving objectlinearly moves at a constant speed as in the present embodiment, themoving distance may be calculated by multiplying a speed of the movingobject by the elapsed time for the moving object. Alternatively, ashooting position at which the moving object has been shot is stored,and a difference between a most recent position and the shootingposition may be calculated so as to calculate the moving distance.Following step S15, step S16 is performed.

In step S16, the CPU 10 eliminates, from the game space, a moving objecthaving the moving distance greater than the maximum flying distance.That is, the CPU 10 compares a most recent moving distance of the movingobject with the maximum flying distance set for the moving object. Whenthe moving distance is greater than the maximum flying distance, themoving object is eliminated from the game space. The most recent movingdistance of the moving object is represented by moving distance dataincluded in the moving object data 67. Further, the maximum flyingdistance set for the moving object can be obtained with reference to theweapon list data 65 and the weapon ID data included in the moving objectdata 67. That is, a value of the maximum flying distance set for themoving object is a value of the maximum flying distance associated withthe weapon object corresponding to the moving object in the weapon listdata 65. In step S16, the moving distance is compared with the maximumflying distance for each moving object appearing in the game space, andthe moving object is eliminated based on the comparison result. When themoving object is eliminated, the CPU 10 updates the content of themoving object data 67 in accordance with the elimination. That is, datarepresenting various information relating to the moving object havingbeen eliminated is eliminated from the moving object data 67. Followingstep S16, step S17 is performed.

As in step S15 and step S16, in the present embodiment, the gameapparatus 3 calculates the moving distance of the moving object in stepS15 so as to eliminate the moving object from the game space, and whenthe moving distance having been calculated is greater than the maximumflying distance, the moving object is eliminated in step S16. In anotherembodiment, the game apparatus 3 may use the elapsed time for the movingobject so as to eliminate the moving object from the game space. Thatis, the moving object having the elapsed time longer than apredetermined time limit may be eliminated from the game space. The timelimit may be preset for each weapon object, as with the information ofthe maximum flying distance of the present embodiment.

In step S17, the CPU 10 calculates a multiplying factor of the contactdetermination area based on the moving distance of the moving object.Specifically, in the present embodiment, the elapsed time for the movingobject is used as a variable changing in accordance with the movingobject being moved. That is, in the present embodiment, the multiplyingfactor of the contact determination area is calculated based on theelapsed time. The multiplying factor is determined such that the greaterthe moving distance is, the larger the contact determination area is,that is, the longer the elapsed time is, the larger the multiplyingfactor is. For example, in examples shown in FIG. 12 and FIG. 13, themoving object of the object ID representing “001” and the moving objectof the object ID representing “002” are shot by the weapon object of theweapon ID representing “001”, and the reference radius of the weaponobject represents “2”. The moving object of the object ID representing“001” has its elapsed time of “1”, and has its determination area radiusof “2” corresponding to the reference radius, where as the moving objectof the object ID representing “002” has its elapsed time of “2” and hasits determination area radius of “2.1” greater than the referenceradius. Thus, the multiplying factor of the contact determination areais calculated such that the longer the elapsed time (the movingdistance) is, the larger the contact determination area is. The CPU 10calculates the multiplying factor for each moving object appearing inthe game space, and stores, in the main memory, data representing eachmultiplying factor having been calculated. Following step S17, step S18is performed.

In step S17, the game apparatus 3 uses the elapsed time as a variablechanging in accordance with the moving object being moved so as tocalculate the multiplying factor. However, in another embodiment, themultiplying factor may be calculated by using the moving distancecalculated in step S15. Alternatively, for example, when a speed of themoving object is controlled so as to be gradually reduced from apredetermined initial speed in accordance with the moving object beingmoved, the moving distance of the moving object can be obtained based onthe speed. Accordingly, in this case, the speed of the moving object maybe used as the variable.

In step S18, The CPU 10 defines the contact determination area for themoving object. In the present embodiment, the contact determination areaof a spherical shape defined for the moving object is generated bymultiplying the reference radius of the contact determination area bythe multiplying factor calculated in step S17 so as to increase the sizeof the determination area radius from the size of the reference radius.That is, the size of the contact determination area is calculated basedon the multiplying factor calculated in step S17, and the referenceradius of the contact determination area defined for the moving object.Specifically, the radius of the contact determination area havingaspherical shape is calculated by multiplying the reference radius bythe multiplying factor. The reference radius is obtained with referenceto the weapon list data 65 and the weapon ID data included in the movingobject data 67. A value of the reference radius of the contactdetermination area defined for the moving object is a value of thereference radius, in the weapon list data 65, associated with the weaponobject corresponding to the moving object. Further, a position of thecontact determination area is determined in accordance with the positionof the moving object. Specifically, the position of the contactdetermination area is determined so as to satisfy a predeterminedpositional relationship between the moving object and the contactdetermination area. For example, when the moving object is an arrowobject, the CPU 10 positions the contact determination area of aspherical shape such that the tip of the arrow is located at the centerof the spherical shape. In step S18, the contact determination area isdefined for each moving object appearing in the game space. Followingstep S18, the CPU 10 ends the movement control process shown in FIG. 15.

The process steps of steps S13 to S18 of the movement control processmay be skipped when the game space does not include the moving object.That is, between step S12 and step S13, the CPU 10 may further perform astep of determining whether or not the game space includes the movingobject. Only when the determination result of the step is positive, theprocess steps of step S13 to step S18 may be performed.

Returning to FIG. 14, in step S7, the CPU 10 determines whether or notthe moving object contacts the target object. As described above, thecontact determination process of step S7 is performed by using thecontact determination area defined for the moving object, and thecontact determination area defined for the target object. That is, whenthe contact determination area of the moving object contacts the contactdetermination area of the target object, the moving object is determinedto contact the target object. In the present embodiment, the size andthe shape of the contact determination area defined for the targetobject is fixed and does not change. The contact determination areadefined for the target object may have any size and shape, and may havea cylindrical shape as well as a spherical shape. Further, one targetobject may have a plurality of contact determination areas.

In step S7, the CPU 10 uses a combination of the moving object and thetarget object so as to perform the contact determination process. Instep S7, the CPU 10 performs the contact determination process for eachcombination of the moving object and the target object. When the movingobject is determined to contact the target object for at least onecombination, the moving object is determined to contact the targetobject. When the determination result of step S7 is positive, step S8 isperformed. On the other hand, when the determination result of step S7is negative, step S8 is skipped and step S9 is performed as describedbelow.

In step S8, the CPU 10 performs a contact process for the combination ofthe moving object and the target object which are determined to contacteach other in step S7. The contact process is a process of, for example,eliminating the moving object from the game space, or displaying ananimation in which the target object is destroyed, or increasing thescore (for a game in which the score is counted). When the moving objectis eliminated, the CPU 10 updates the content of the moving object data67 in accordance with the elimination. Specifically, data representingvarious information relating to the moving object having been eliminatedis eliminated from the moving object data 67.

In step S9, the CPU 10 displays a game image on the television set 2.That is, the CPU 10 (and the GPU 11 b) generates an image representingthe game space as viewed from a virtual camera set in the game space.Further, an image of the aim is displayed on the screen of thetelevision set 2 so as to be superimposed on the pointing position inthe generated image. In this case, as described above, the virtualcamera is set such that the line-of-sight direction of the virtualcamera is the same as the most recent shooting direction.

In step S10, the CPU 10 determines whether or not the game is to beended. The determination of step S10 is performed in accordance with,for example, whether or not a game is cleared, or whether or not acondition for game over is satisfied, or whether or not a player issuesan instruction for stopping the game. When the determination result ofstep S10 is negative, step S2 is performed again. Thereafter, a processstep of steps S2 to S10 is repeated until the game is determined to beended in step S10. On the other hand, when the determination result ofstep S10 is positive, the CPU 10 ends the game process shown in FIG. 14.This is end of the description of the game process.

As described above, according to the present embodiment, the contactdetermination area defined for the moving object is gradually increasedin accordance with the increase of the moving distance of the movingobject (steps S17 and S18). Thus, the moving object can easily hit evena target object which is distanced from the shooting position, andtherefore a beginner or a player poor at playing a game is allowed toshoot the moving object so as to hit the target object. Further, in thepresent embodiment, the size of the contact determination area of onlythe moving object is changed, and therefore a processing load for aprocess of changing the contact determination area does not depend onthe number of the target objects. Accordingly, the processing load of asystem does not greatly change depending on the number of the targetobjects, thereby stabilizing the processing load of the game apparatus3.

In the present embodiment, the radius of the contact determination areaof the moving object is calculated by using the multiplying factor basedon the moving distance of the moving object. However, in anotherembodiment, the radius of the contact determination area may becalculated by adding a predetermined constant (for example, 0.2) to thereference radius each time a predetermined time (for example, one frametime) has elapsed. Further, the constant may be set for each type of theweapon object.

In the present embodiment, the contact determination area of the movingobject has a spherical shape, and the radius thereof is changed inaccordance with the moving distance. In another embodiment, the contactdetermination area may not necessarily have a spherical shape, and thecontact determination area may have any other shape such as acylindrical shape or an elliptical shape. Further, in anotherembodiment, the shape of the contact determination area of the movingobject may be changed in accordance with the moving distance. Forexample, when the moving distance of the moving object is smaller thanor equal to a predetermined value, the game apparatus 3 may set thecontact determination area of the moving object so as to have the sameshape as the moving object, where as when the moving distance is greaterthan the predetermined value, the game apparatus 3 may set the contactdetermination area so as to have a spherical shape. Thus, the contactdetermination is accurately made for an area (relatively) near theshooting position, where as the contact determination can be simplifiedby simplifying the process for an area (relatively) far from theshooting position. Further, the number of the contact determinationareas defined for each one moving object may not necessarily be one, anda plurality of the contact determination areas may be defined for eachone moving object. For example, the arrow object of the presentembodiment may have arranged in line a plurality of the contactdetermination areas each having a spherical shape. Further, in anotherembodiment, the number of the contact determination areas defined foreach one moving object may be changed in accordance with the movingdistance of the moving object. For example, as the moving distance isincreased, the number of the contact determination areas may beincreased. In this case, as in the present embodiment, the moving objectcan easily hit the target object distanced from the shooting position.

In order to allow the moving object to more easily hit the targetobject, the game apparatus 3 preferably changes at least one of the sizeand the shape of each of the contact determination areas and the numberof the contact determination areas such that the area sizes of thecontact determination areas as viewed from the moving direction of themoving object are increased. The area size represents the area size ofthe contact determination area which is projected from the movingdirection on a projection plane perpendicular to the moving direction.

Further, in another embodiment, degrees to which the size or the shapeof each of the contact determination areas of the moving object or thenumber of the contact determination areas of the moving object arechanged may be determined in accordance with the type (type of theweapon object corresponding to the moving object) of the moving object.For example, in the present embodiment, a degree to which the radius ofthe contact determination area is changed may be preset for each weaponobject. Specifically, in the weapon list data, each weapon object isassociated with the degree of change. The degree of change represents,for example, information indicating that “the multiplying factor isincreased by b each time the moving distance is increased by a”. In thegame process, when the multiplying factor for the moving object iscalculated in step S17, the CPU 10 calculates the multiplying factor inaccordance with the degree of change set for each weapon objectcorresponding to the moving object. Thus, the degree of change can beoptionally set for each weapon object, thereby adjusting, for eachweapon object, a difficulty level at which the moving object thereofhits the target object.

Further, in another embodiment, at least one of the size of each contactdetermination area of the moving object, the shape of each contactdetermination area of the moving object, and the number of the contactdetermination areas of the moving object may be changed in accordancewith not only the moving distance of the moving object but also anothercondition (such as a state of the game). For example, at least one ofthe size, the shape and the number as described above may be changeddepending on whether or not the player object is moving relative to thetarget object. When the player object is moving relative to the targetobject, it is more difficult that the moving object hits the targetobject as compared to when the player object is not moving relative tothe target object. Therefore, in the former case, for example, thecontact determination area may be increased as compared to in the lattercase. Further, in another embodiment, at least one of the size of eachcontact determination area of the moving object, the shape of eachcontact determination area of the moving object, and the number of thecontact determination areas of the moving object may be changed inaccordance with the elapsed time after the start of the game, or aremaining time before the time limit (in the case of the time limitbeing set). Further, at least one of the size, the shape and the numberas described above may be changed depending on a skill of a player. Theskill of a player may be determined based on, for example, the number oftimes the player played the game, a score history of the player, or thelike.

As described above, the present invention is applicable to, for example,a game program and a game apparatus so as to perform, for example, agame process with a constant processing load without changing theprocessing load of a system depending on the number of target objects.

While the invention has been described in detail, the foregoingdescription is in all aspects illustrative and not restrictive. It isunderstood that numerous other modifications and variations can bedevised without departing from the scope of the invention.

1. A computer-readable storage medium having stored thereon a gameprogram executed by a computer of a game apparatus for executing a gamein which a target object is shot in a virtual three-dimensional space inaccordance with an input from an input device, the game program causingthe computer to execute: an input reception step of receiving an inputof an instruction for shooting; a shooting step of shooting a movingobject and moving the moving object in the virtual three-dimensionalspace in a case where the input reception step receives the input; anarea change step of changing at least one of a size, a shape, or anumber of a contact determination area defined for the moving object, byusing a variable changing in accordance with the moving object beingmoved; a contact determination step of determining whether or not thecontact determination area defined for the moving object contacts acontact determination area defined for the target object; and a contactprocess step of performing a predetermined game process when the contactdetermination step determines that the contact determination areadefined for the moving object contacts the contact determination areadefined for the target object.
 2. The storage medium according to claim1, wherein the variable represents an elapsed time after the movingobject is shot.
 3. The storage medium according to claim 2, wherein thecomputer changes, in the area change step, the contact determinationarea defined for the moving object such that the longer the elapsed timeis, the larger the contact determination area defined for the movingobject is.
 4. The storage medium according to claim 3, wherein thecomputer changes, in the area change step, at least one of the size, theshape and the number of the contact determination area defined for themoving object such that an area size of the contact determination areaof the moving object as viewed from a moving direction of the movingobject is increased in accordance with the variable being increased. 5.The storage medium according to claim 4, wherein the game program causesthe computer to further execute a display control step of generating animage of the virtual three-dimensional space such that a direction inwhich the moving object is shot is a direction from a front side to afar side in the virtual three-dimensional space on a screen, anddisplaying the image by a display device.
 6. The storage mediumaccording to claim 3, wherein the game program causes the computer tofurther execute a display control step of generating an image of thevirtual three-dimensional space such that a direction in which themoving object is shot is a direction from a front side to a far side inthe virtual three-dimensional space on a screen, and displaying theimage by a display device.
 7. The storage medium according to claim 2,wherein the computer changes, in the area change step, at least one ofthe size, the shape and the number of the contact determination areadefined for the moving object such that an area size of the contactdetermination area of the moving object as viewed from a movingdirection of the moving object is increased in accordance with thevariable being increased.
 8. The storage medium according to claim 7,wherein the game program causes the computer to further execute adisplay control step of generating an image of the virtualthree-dimensional space such that a direction in which the moving objectis shot is a direction from a front side to a far side in the virtualthree-dimensional space on a screen, and displaying the image by adisplay device.
 9. The storage medium according to claim 2, wherein forthe size and the shape of the contact determination area defined for themoving object, predetermined size and shape are used at a time when themoving object is shot, and the area change step includes a multiplyingfactor calculation step of calculating a multiplying factor inaccordance with the elapsed time after the moving object is shot, and atransformation step of transforming the contact determination areadefined for the moving object at the time when the moving object is shotso as to be enlarged or reduced by using the multiplying factor.
 10. Thestorage medium according to claim 2, wherein the computer determines, inthe shooting step, a direction in which the moving object is shot, byusing the input from the input device.
 11. The storage medium accordingto claim 2, wherein the moving object of a plurality of types is shot inthe virtual three-dimensional space, and the computer determines, in thearea change step, a degree of change to which the contact determinationarea defined for the moving object is changed, for each of the pluralityof types of the moving object.
 12. The storage medium according to claim1, wherein the variable represents a moving distance over which themoving object moves in the virtual three-dimensional space.
 13. Thestorage medium according to claim 12, wherein the computer changes, inthe area change step, the contact determination area defined for themoving object such that the greater the moving distance over which themoving object moves, the larger the size of the contact determinationarea defined for the moving object.
 14. The storage medium according toclaim 13, wherein the computer changes, in the area change step, atleast one of the size, the shape and the number of the contactdetermination area defined for the moving object such that an area sizeof the contact determination area of the moving object as viewed from amoving direction of the moving object is increased in accordance withthe variable being increased.
 15. The storage medium according to claim14, wherein the game program causes the computer to further execute adisplay control step of generating an image of the virtualthree-dimensional space such that a direction in which the moving objectis shot is a direction from a front side to a far side in the virtualthree-dimensional space on a screen, and displaying the image by adisplay device.
 16. The storage medium according to claim 13, whereinthe game program causes the computer to further execute a displaycontrol step of generating an image of the virtual three-dimensionalspace such that a direction in which the moving object is shot is adirection from a front side to a far side in the virtualthree-dimensional space on a screen, and displaying the image by adisplay device.
 17. The storage medium according to claim 12, whereinthe computer changes, in the area change step, at least one of the size,the shape and the number of the contact determination area defined forthe moving object such that an area size of the contact determinationarea of the moving object as viewed from a moving direction of themoving object is increased in accordance with the variable beingincreased.
 18. The storage medium according to claim 17, wherein thegame program causes the computer to further execute a display controlstep of generating an image of the virtual three-dimensional space suchthat a direction in which the moving object is shot is a direction froma front side to a far side in the virtual three-dimensional space on ascreen, and displaying the image by a display device.
 19. The storagemedium according to claim 12, wherein for the size and the shape of thecontact determination area defined for the moving object, predeterminedsize and shape are used at a time when the moving object is shot, andthe area change step includes a multiplying factor calculation step ofcalculating a multiplying factor in accordance with the moving distanceover which the moving object moves, and a transformation step oftransforming the contact determination area defined for the movingobject at the time when the moving object is shot so as to be enlargedor reduced by using the multiplying factor.
 20. The storage mediumaccording to claim 12, wherein the computer determines, in the shootingstep, a direction in which the moving object is shot, by using the inputfrom the input device.
 21. The storage medium according to claim 12,wherein the moving object of a plurality of types is shot in the virtualthree-dimensional space, and the computer determines, in the area changestep, a degree of change to which the contact determination area definedfor the moving object is changed, for each of the plurality of types ofthe moving object.
 22. The storage medium according to claim 1, whereinthe moving object of a plurality of types is shot in the virtualthree-dimensional space, and the computer determines, in the area changestep, a degree of change to which the contact determination area definedfor the moving object is changed, for each of the plurality of types ofthe moving object.
 23. A game apparatus for executing a game in which atarget object is shot in a virtual three-dimensional space in accordancewith an input from an input device, the game apparatus comprising: inputreception means for receiving an input of an instruction for shooting;shooting means for shooting a moving object and moving the moving objectin the virtual three-dimensional space in a case where the inputreception means receives the input; area change means for changing atleast one of a size, a shape, and a number of a contact determinationarea defined for the moving object, by using a variable changing inaccordance with the moving object being moved; contact determinationmeans for determining whether or not the contact determination areadefined for the moving object contacts a contact determination areadefined for the target object; and contact process means for performinga predetermined game process when the contact determination meansdetermines that the contact determination area defined for the movingobject contacts the contact determination area defined for the targetobject.